Differential signaling is used in various applications, for example for driving universal serial bus (USB). Transmission speed of data can vary across the applications and also within an application. For example, for USB, transmission speeds of 12 Mbps and 1.5 Mbps are desired. In low speed transmission mode meeting requirements of differential signaling is a challenge as load due to a USB cable varies. The requirements include controlling slew rate at two outputs, controlling rise time and fall time ratio at the two outputs within a certain range, and controlling start time of a rising edge and a falling edge at the two outputs for meeting requirements of cross-over voltage. The two outputs are differential to each other and include a positive transition and a negative transition.
A circuit 100 for differential signaling, is illustrated in FIG. 1 (Prior Art). When a driver 105 is active then the positive transition is obtained at an output node 110 and when a driver 115 is active then the negative transition is obtained at the output node 110. The driver 105 generates the positive transition in response to a pre-driver circuit 125 and an input at an input node 120, and the driver 115 generates the negative transition in response to a pre-driver circuit 130 and another input at the input node 120. Two instances of the circuit 100, one instance generating the positive transition and another instance generating the negative transition independently, together forms a pseudo-differential driver. In the illustrated example, the driver 105 of the first instance of the circuit 100 is active and a driver similar to the driver 115 of a second instance is active to provide the two outputs. Slew rates at the two outputs are given by:
                              In                      Cf            +            Cgdn                          ⁢                                  ⁢        …        ⁢                                  ⁢        falling        ⁢                                  ⁢        transition        ⁢                                  ⁢        slew        ⁢                                  ⁢        rate                            (        1        )                                          Ip                      Cf            +            Cgdp                          ⁢                                  ⁢        …        ⁢                                  ⁢        rising        ⁢                                  ⁢        transition        ⁢                                  ⁢        slew        ⁢                                  ⁢        rate                            (        2        )            where In is a source current of the second instance, Ip is a sink current of the first instance, Cf is capacitance of feedback capacitors 135, Cgdn is gate to drain capacitance of the driver similar to the driver 115, and Cgdp is gate to drain capacitance of the driver 105.
It is desired to have similar slew rates at the two outputs to achieve a desired cross over point of the two outputs. However, formula 1 and formula 2 illustrates that the slew rates of rising transition of one instance is different from that of falling transition of other instance and vice-versa. In order to have similar slew rates “In” needs to be equal to “Ip”. “In” can be matched to “Ip” using various current-mirroring techniques but at expense of additional area or power. Also, current-mirroring techniques result in mismatches that worsen with process-scaling. Further, Cgdn and Cgdp cause mismatch in the fall time and the rise time at the two outputs. In order to have mismatch between Cgdn and Cgdp, insignificant, Cf can be made larger but at the expense of additional area. Also, the start time of the rising edge and the falling edge at the two outputs depends on parasitic capacitances at a gate of the driver 105 and at a gate of the driver similar to the driver 115, respectively and is uncontrolled causing additional variation of the cross-over voltage from an expected value.